A network computing environment, which may sometimes be referred to as a cloud computing environment, enables a plurality of different computer resources to interact cooperatively, abstracted (in some examples into a cloud layer) so that disparate devices appear to an end-user as a single pool of seamless resources. Examples of computer resources amenable to network computing or cloud environments include physical programmable devices (for example, servers, clients, etc.), storage and other memory devices, and logical computing applications and engines (for example, business and other software applications).
On a typical network computing infrastructure, physical and logical machines, platform services and software services are often shared and used by multiple users, as well as by other network computing systems. Due to the dynamic nature of workloads running on network computing systems, resource needs go through periods of high usage and dips in usage. It is often difficult to determine at what point a network computing environment service's need for resources will spike and for how long, and coupled with the fact that resources on a system hosting a network computing environment may be scarce, it is not immediately clear how to allocate them optimally.